home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.Insets;
- import java.awt.KeyboardFocusManager;
- import java.awt.Toolkit;
- import java.beans.PropertyChangeListener;
- import java.io.File;
- import java.io.Serializable;
- import java.lang.reflect.Method;
- import java.security.AccessController;
- import java.util.ArrayList;
- import java.util.Locale;
- import java.util.Properties;
- import java.util.StringTokenizer;
- import java.util.Vector;
- import javax.swing.border.Border;
- import javax.swing.event.SwingPropertyChangeSupport;
- import javax.swing.plaf.ComponentUI;
- import javax.swing.plaf.metal.MetalLookAndFeel;
- import sun.awt.PaintEventDispatcher;
- import sun.security.action.GetPropertyAction;
- import sun.swing.DefaultLookup;
- import sun.swing.SwingUtilities2;
-
- public class UIManager implements Serializable {
- private static final Object classLock = new Object();
- private static Thread currentLAFStateThread = null;
- private static LAFState currentLAFState = null;
- private static final String defaultLAFKey = "swing.defaultlaf";
- private static final String auxiliaryLAFsKey = "swing.auxiliarylaf";
- private static final String multiplexingLAFKey = "swing.plaf.multiplexinglaf";
- private static final String installedLAFsKey = "swing.installedlafs";
- private static final String disableMnemonicKey = "swing.disablenavaids";
- private static LookAndFeelInfo[] installedLAFs;
-
- private static LAFState getLAFState() {
- Thread var0 = Thread.currentThread();
- if (var0 == currentLAFStateThread) {
- return currentLAFState;
- } else {
- LAFState var1 = (LAFState)SwingUtilities.appContextGet(SwingUtilities2.LAF_STATE_KEY);
- if (var1 == null) {
- synchronized(classLock) {
- var1 = (LAFState)SwingUtilities.appContextGet(SwingUtilities2.LAF_STATE_KEY);
- if (var1 == null) {
- SwingUtilities.appContextPut(SwingUtilities2.LAF_STATE_KEY, var1 = new LAFState((1)null));
- }
- }
- }
-
- currentLAFStateThread = var0;
- currentLAFState = var1;
- return var1;
- }
- }
-
- private static String makeInstalledLAFKey(String var0, String var1) {
- return "swing.installedlaf." + var0 + "." + var1;
- }
-
- private static String makeSwingPropertiesFilename() {
- String var0 = File.separator;
- String var1 = System.getProperty("java.home");
- if (var1 == null) {
- var1 = "<java.home undefined>";
- }
-
- return var1 + var0 + "lib" + var0 + "swing.properties";
- }
-
- public static LookAndFeelInfo[] getInstalledLookAndFeels() {
- maybeInitialize();
- LookAndFeelInfo[] var0 = installedLAFs;
- LookAndFeelInfo[] var1 = new LookAndFeelInfo[var0.length];
- System.arraycopy(var0, 0, var1, 0, var0.length);
- return var1;
- }
-
- public static void setInstalledLookAndFeels(LookAndFeelInfo[] var0) throws SecurityException {
- LookAndFeelInfo[] var1 = new LookAndFeelInfo[var0.length];
- System.arraycopy(var0, 0, var1, 0, var0.length);
- installedLAFs = var1;
- }
-
- public static void installLookAndFeel(LookAndFeelInfo var0) {
- LookAndFeelInfo[] var1 = getInstalledLookAndFeels();
- LookAndFeelInfo[] var2 = new LookAndFeelInfo[var1.length + 1];
- System.arraycopy(var1, 0, var2, 0, var1.length);
- var2[var1.length] = var0;
- setInstalledLookAndFeels(var2);
- }
-
- public static void installLookAndFeel(String var0, String var1) {
- installLookAndFeel(new LookAndFeelInfo(var0, var1));
- }
-
- public static LookAndFeel getLookAndFeel() {
- maybeInitialize();
- return getLAFState().lookAndFeel;
- }
-
- public static void setLookAndFeel(LookAndFeel var0) throws UnsupportedLookAndFeelException {
- if (var0 != null && !var0.isSupportedLookAndFeel()) {
- String var4 = var0.toString() + " not supported on this platform";
- throw new UnsupportedLookAndFeelException(var4);
- } else {
- LAFState var1 = getLAFState();
- LookAndFeel var2 = var1.lookAndFeel;
- if (var2 != null) {
- var2.uninitialize();
- }
-
- var1.lookAndFeel = var0;
- if (var0 != null) {
- DefaultLookup.setDefaultLookup((DefaultLookup)null);
- var0.initialize();
- var1.setLookAndFeelDefaults(var0.getDefaults());
- } else {
- var1.setLookAndFeelDefaults((UIDefaults)null);
- }
-
- SwingPropertyChangeSupport var3 = var1.getPropertyChangeSupport(false);
- if (var3 != null) {
- var3.firePropertyChange("lookAndFeel", var2, var0);
- }
-
- }
- }
-
- public static void setLookAndFeel(String var0) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
- if ("javax.swing.plaf.metal.MetalLookAndFeel".equals(var0)) {
- setLookAndFeel((LookAndFeel)(new MetalLookAndFeel()));
- } else {
- Class var1 = SwingUtilities.loadSystemClass(var0);
- setLookAndFeel((LookAndFeel)var1.newInstance());
- }
-
- }
-
- public static String getSystemLookAndFeelClassName() {
- String var0 = (String)AccessController.doPrivileged(new GetPropertyAction("swing.systemlaf"));
- if (var0 != null) {
- return var0;
- } else {
- String var1 = (String)AccessController.doPrivileged(new GetPropertyAction("os.name"));
- if (var1 != null) {
- if (var1.indexOf("Windows") != -1) {
- return "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
- }
-
- String var2 = (String)AccessController.doPrivileged(new GetPropertyAction("sun.desktop"));
- if ("gnome".equals(var2)) {
- return "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
- }
-
- if (var1.indexOf("Solaris") != -1 || var1.indexOf("SunOS") != -1) {
- return "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
- }
- }
-
- return getCrossPlatformLookAndFeelClassName();
- }
- }
-
- public static String getCrossPlatformLookAndFeelClassName() {
- String var0 = (String)AccessController.doPrivileged(new GetPropertyAction("swing.crossplatformlaf"));
- return var0 != null ? var0 : "javax.swing.plaf.metal.MetalLookAndFeel";
- }
-
- public static UIDefaults getDefaults() {
- maybeInitialize();
- return getLAFState().multiUIDefaults;
- }
-
- public static Font getFont(Object var0) {
- return getDefaults().getFont(var0);
- }
-
- public static Font getFont(Object var0, Locale var1) {
- return getDefaults().getFont(var0, var1);
- }
-
- public static Color getColor(Object var0) {
- return getDefaults().getColor(var0);
- }
-
- public static Color getColor(Object var0, Locale var1) {
- return getDefaults().getColor(var0, var1);
- }
-
- public static Icon getIcon(Object var0) {
- return getDefaults().getIcon(var0);
- }
-
- public static Icon getIcon(Object var0, Locale var1) {
- return getDefaults().getIcon(var0, var1);
- }
-
- public static Border getBorder(Object var0) {
- return getDefaults().getBorder(var0);
- }
-
- public static Border getBorder(Object var0, Locale var1) {
- return getDefaults().getBorder(var0, var1);
- }
-
- public static String getString(Object var0) {
- return getDefaults().getString(var0);
- }
-
- public static String getString(Object var0, Locale var1) {
- return getDefaults().getString(var0, var1);
- }
-
- static String getString(Object var0, Component var1) {
- Locale var2 = var1 == null ? Locale.getDefault() : var1.getLocale();
- return getString(var0, var2);
- }
-
- public static int getInt(Object var0) {
- return getDefaults().getInt(var0);
- }
-
- public static int getInt(Object var0, Locale var1) {
- return getDefaults().getInt(var0, var1);
- }
-
- public static boolean getBoolean(Object var0) {
- return getDefaults().getBoolean(var0);
- }
-
- public static boolean getBoolean(Object var0, Locale var1) {
- return getDefaults().getBoolean(var0, var1);
- }
-
- public static Insets getInsets(Object var0) {
- return getDefaults().getInsets(var0);
- }
-
- public static Insets getInsets(Object var0, Locale var1) {
- return getDefaults().getInsets(var0, var1);
- }
-
- public static Dimension getDimension(Object var0) {
- return getDefaults().getDimension(var0);
- }
-
- public static Dimension getDimension(Object var0, Locale var1) {
- return getDefaults().getDimension(var0, var1);
- }
-
- public static Object get(Object var0) {
- return getDefaults().get(var0);
- }
-
- public static Object get(Object var0, Locale var1) {
- return getDefaults().get(var0, var1);
- }
-
- public static Object put(Object var0, Object var1) {
- return getDefaults().put(var0, var1);
- }
-
- public static ComponentUI getUI(JComponent var0) {
- maybeInitialize();
- ComponentUI var1 = null;
- LookAndFeel var2 = getLAFState().multiLookAndFeel;
- if (var2 != null) {
- var1 = var2.getDefaults().getUI(var0);
- }
-
- if (var1 == null) {
- var1 = getDefaults().getUI(var0);
- }
-
- return var1;
- }
-
- public static UIDefaults getLookAndFeelDefaults() {
- maybeInitialize();
- return getLAFState().getLookAndFeelDefaults();
- }
-
- private static LookAndFeel getMultiLookAndFeel() {
- LookAndFeel var0 = getLAFState().multiLookAndFeel;
- if (var0 == null) {
- String var1 = "javax.swing.plaf.multi.MultiLookAndFeel";
- String var2 = getLAFState().swingProps.getProperty("swing.plaf.multiplexinglaf", var1);
-
- try {
- Class var3 = SwingUtilities.loadSystemClass(var2);
- var0 = (LookAndFeel)var3.newInstance();
- } catch (Exception var4) {
- System.err.println("UIManager: failed loading " + var2);
- }
- }
-
- return var0;
- }
-
- public static void addAuxiliaryLookAndFeel(LookAndFeel var0) {
- maybeInitialize();
- if (var0.isSupportedLookAndFeel()) {
- Vector var1 = getLAFState().auxLookAndFeels;
- if (var1 == null) {
- var1 = new Vector();
- }
-
- if (!var1.contains(var0)) {
- var1.addElement(var0);
- var0.initialize();
- getLAFState().auxLookAndFeels = var1;
- if (getLAFState().multiLookAndFeel == null) {
- getLAFState().multiLookAndFeel = getMultiLookAndFeel();
- }
- }
-
- }
- }
-
- public static boolean removeAuxiliaryLookAndFeel(LookAndFeel var0) {
- maybeInitialize();
- Vector var2 = getLAFState().auxLookAndFeels;
- if (var2 != null && var2.size() != 0) {
- boolean var1 = var2.removeElement(var0);
- if (var1) {
- if (var2.size() == 0) {
- getLAFState().auxLookAndFeels = null;
- getLAFState().multiLookAndFeel = null;
- } else {
- getLAFState().auxLookAndFeels = var2;
- }
- }
-
- var0.uninitialize();
- return var1;
- } else {
- return false;
- }
- }
-
- public static LookAndFeel[] getAuxiliaryLookAndFeels() {
- maybeInitialize();
- Vector var0 = getLAFState().auxLookAndFeels;
- if (var0 != null && var0.size() != 0) {
- LookAndFeel[] var1 = new LookAndFeel[var0.size()];
-
- for(int var2 = 0; var2 < var1.length; ++var2) {
- var1[var2] = (LookAndFeel)var0.elementAt(var2);
- }
-
- return var1;
- } else {
- return null;
- }
- }
-
- public static void addPropertyChangeListener(PropertyChangeListener var0) {
- synchronized(classLock) {
- getLAFState().getPropertyChangeSupport(true).addPropertyChangeListener(var0);
- }
- }
-
- public static void removePropertyChangeListener(PropertyChangeListener var0) {
- synchronized(classLock) {
- getLAFState().getPropertyChangeSupport(true).removePropertyChangeListener(var0);
- }
- }
-
- public static PropertyChangeListener[] getPropertyChangeListeners() {
- synchronized(classLock) {
- return getLAFState().getPropertyChangeSupport(true).getPropertyChangeListeners();
- }
- }
-
- private static Properties loadSwingProperties() {
- if (UIManager.class.getClassLoader() != null) {
- return new Properties();
- } else {
- Properties var0 = new Properties();
- AccessController.doPrivileged(new 1(var0));
- return var0;
- }
- }
-
- private static void checkProperty(Properties var0, String var1) {
- String var2 = System.getProperty(var1);
- if (var2 != null) {
- var0.put(var1, var2);
- }
-
- }
-
- private static void initializeInstalledLAFs(Properties var0) {
- String var1 = var0.getProperty("swing.installedlafs");
- if (var1 != null) {
- Vector var2 = new Vector();
- StringTokenizer var3 = new StringTokenizer(var1, ",", false);
-
- while(var3.hasMoreTokens()) {
- var2.addElement(var3.nextToken());
- }
-
- Vector var4 = new Vector(var2.size());
-
- for(int var5 = 0; var5 < var2.size(); ++var5) {
- String var6 = (String)var2.elementAt(var5);
- String var7 = var0.getProperty(makeInstalledLAFKey(var6, "name"), var6);
- String var8 = var0.getProperty(makeInstalledLAFKey(var6, "class"));
- if (var8 != null) {
- var4.addElement(new LookAndFeelInfo(var7, var8));
- }
- }
-
- installedLAFs = new LookAndFeelInfo[var4.size()];
-
- for(int var9 = 0; var9 < var4.size(); ++var9) {
- installedLAFs[var9] = (LookAndFeelInfo)var4.elementAt(var9);
- }
-
- }
- }
-
- private static void initializeDefaultLAF(Properties var0) {
- if (getLAFState().lookAndFeel == null) {
- String var1 = getCrossPlatformLookAndFeelClassName();
- String var2 = var1;
- String var3 = "<undefined>";
-
- try {
- var3 = var0.getProperty("swing.defaultlaf", var2);
- setLookAndFeel(var3);
- } catch (Exception var7) {
- try {
- var3 = var0.getProperty("swing.defaultlaf", var1);
- setLookAndFeel(var3);
- } catch (Exception var6) {
- throw new Error("can't load " + var3);
- }
- }
-
- }
- }
-
- private static void initializeAuxiliaryLAFs(Properties var0) {
- String var1 = var0.getProperty("swing.auxiliarylaf");
- if (var1 != null) {
- Vector var2 = new Vector();
- StringTokenizer var3 = new StringTokenizer(var1, ",");
-
- while(var3.hasMoreTokens()) {
- String var5 = var3.nextToken();
-
- try {
- Class var6 = SwingUtilities.loadSystemClass(var5);
- LookAndFeel var7 = (LookAndFeel)var6.newInstance();
- var7.initialize();
- var2.addElement(var7);
- } catch (Exception var8) {
- System.err.println("UIManager: failed loading auxiliary look and feel " + var5);
- }
- }
-
- if (var2.size() == 0) {
- var2 = null;
- } else {
- getLAFState().multiLookAndFeel = getMultiLookAndFeel();
- if (getLAFState().multiLookAndFeel == null) {
- var2 = null;
- }
- }
-
- getLAFState().auxLookAndFeels = var2;
- }
- }
-
- private static void initializeSystemDefaults(Properties var0) {
- getLAFState().swingProps = var0;
- }
-
- private static void maybeInitialize() {
- synchronized(classLock) {
- if (!getLAFState().initialized) {
- getLAFState().initialized = true;
- initialize();
- }
-
- }
- }
-
- private static void initialize() {
- Properties var0 = loadSwingProperties();
- initializeSystemDefaults(var0);
- initializeDefaultLAF(var0);
- initializeAuxiliaryLAFs(var0);
- initializeInstalledLAFs(var0);
- String var1 = Toolkit.getDefaultToolkit().getClass().getName();
- if (!"sun.awt.X11.XToolkit".equals(var1) && FocusManager.isFocusManagerEnabled()) {
- KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalPolicy(new LayoutFocusTraversalPolicy());
- }
-
- if (RepaintManager.HANDLE_TOP_LEVEL_PAINT) {
- PaintEventDispatcher.setPaintEventDispatcher(new SwingPaintEventDispatcher());
- }
-
- KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventPostProcessor(new 2());
-
- try {
- Method var2 = (Method)AccessController.doPrivileged(new 3());
- var2.invoke((Object)null, JComponent.focusController);
- } catch (Exception var3) {
- assert false;
- }
-
- }
-
- // $FF: synthetic method
- static String access$100() {
- return makeSwingPropertiesFilename();
- }
-
- // $FF: synthetic method
- static void access$200(Properties var0, String var1) {
- checkProperty(var0, var1);
- }
-
- static {
- ArrayList var0 = new ArrayList(4);
- var0.add(new LookAndFeelInfo("Metal", "javax.swing.plaf.metal.MetalLookAndFeel"));
- var0.add(new LookAndFeelInfo("CDE/Motif", "com.sun.java.swing.plaf.motif.MotifLookAndFeel"));
- String var1 = (String)AccessController.doPrivileged(new GetPropertyAction("os.name"));
- if (var1 != null && var1.indexOf("Windows") != -1) {
- var0.add(new LookAndFeelInfo("Windows", "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"));
- if (Toolkit.getDefaultToolkit().getDesktopProperty("win.xpstyle.themeActive") != null) {
- var0.add(new LookAndFeelInfo("Windows Classic", "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"));
- }
- } else {
- var0.add(new LookAndFeelInfo("GTK+", "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"));
- }
-
- installedLAFs = (LookAndFeelInfo[])var0.toArray(new LookAndFeelInfo[var0.size()]);
- }
- }
-